
import Excepciones.ExcepcionExisteNombreDiccionario;
import java.awt.Component;
import java.io.IOException;
import javax.swing.JPanel;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Jose Luis Orta
 */
public class CIPrincipal {
    private CIDiccionario cid;
    private CIConjPares cicp;
    private VistaPrincipal vp;
    private CITexto cit;
    private CICorregir cic;
    private CIReglas cir;
    private CIAyuda cia;
    private Algoritmo a;

    public CIPrincipal(){
        cit = new CITexto();
        cicp = new CIConjPares();
        cid = new CIDiccionario();
        a = new Algoritmo();
        cir = new CIReglas();
        cia = new CIAyuda();
        cic = new CICorregir(cit, cir, cid);
        vp = new VistaPrincipal(this,"Editor");

    }
    public void iniciar(){
        vp.visualizar();
    }
    public JPanel getVistaTexto(){
        return cit.getVistaTexto();
    }
    public JPanel getVistaAyuda() {
        return cia.getVistaAyuda();
    }
    public void nuevoTexto(){
        cit.nuevoTexto();
    }
    public JPanel getVistaConjPares(){
        return cicp.getVistaConjPares();
    }
    public JPanel getVistaDiccionario(){
        return cid.getVistaDiccionario();
    }
    public JPanel getVistaCorregir(){
        return cic.getVistaCorregir();
    }
    public JPanel getVistaReglas(){
        return cir.getVistaReglas();
    }
    public ConjPares getConjPares() {
        return cicp.getConjPares();
    }
    
    public void setVistaTexto(Component c){
        cit.setVistaTexto(c);
    }
    public void seleccionarTodo(){
        cit.seleccionarTodo();
    }
    public void cargarTexto(){
        cit.cargarTexto(vp);
    }
    public void salvarTexto(){
        cit.salvarTexto(vp);
    }
   public void copiarTexto() {
       cit.copiarTexto();
   }
   public void pegarTexto() {
       cit.pegarTexto();
   }
   public void cortarTexto() {
       cit.cortarTexto();
   }   
   public void cerrarTexto() {
       cit.cerrarTexto();
   }
   public void corregir() {
       cic.corregir();
   }
   public void finalizarcorreccion() {
       cic.finalizarcorreccion();
   }
   public void cargarDiccionario() {
       cid.cargarDiccionario(vp);
   }
   public void salvarDiccionario(){
       cid.salvarDiccionario(vp);
   }
   public void crearDiccionario(String a, String b) throws ExcepcionExisteNombreDiccionario {
       cid.crearDiccionario(a,b);
   }
   public void crearDiccionario(){
        cid.crearDiccionario();
        vp.cambiarAVistaDiccionario();
   }
   public void eliminarDiccionario(){
       cid.eliminarDiccinario(vp);
   }
   public void cargarConjuntoPares () throws IOException, FormatoConjParesNoValido {
       cicp.cargarConjPares(vp);
   }
   public void nuevoConjuntoPares () {
       cicp.nuevoConjPares();
       vp.cambiarAVistaConjPares();
   }
   public void eliminarConjuntoPares () {
       cicp.eliminarConjPares();
   }
   public void eliminarConjuntoPares2 () {
       cicp.eliminarConjPares2();
   }
   public void generarReglas(ConjPares c) throws ExcepcionVacio {
       if (cicp.paresCreados()) {
           if (cir.existeN()) cir.generarReglas(c);
           else cir.mostrarMensajeNoN();
       }
       else cir.mostrarMensajeNoCP();
   }
   public void salvarConjuntoPares () {
       cicp.salvarConjPares(vp);
   }

   public void mostrarReglas() {
       if (cicp.paresCreados()) cir.mostrarReglas();
   }
   public void subirScrollAyuda() {
       cia.subirScrollAyuda();
   }
}
